package pro.cherish.knowledgeruntime.web.session;

/**
 * @author 创建人：cherish
 * @version 版本号：V1.0
 * <p>
 * ***************************修订记录************************************
 * 2019-11-03 cherish 创建该类功能。
 * **********************************************************************
 * </p>
 * @ClassName 类名：TokenManager
 * @Description 功能说明：
 * <p>
 * TODO
 * </p>
 * **********************************************************************
 * @date 创建日期： 2019-11-03 cherish
 */
public class TokenManager {

    private static ThreadLocal<CommonSession> sessionPools = new ThreadLocal<>();

    public static void putSession(CommonSession commonSession) {
        sessionPools.set(commonSession);
    }

    public static void removeSession() {
        sessionPools.remove();
    }

    /**
     * 获取对象
     * @return
     */
    public static CommonSession getSession() {
        CommonSession session = sessionPools.get();
        if(session != null ) {
            return session;
        }
        synchronized (sessionPools) {
            session = sessionPools.get();
            if(session != null ) {
                return session;
            }
            session = new CommonSession();
            putSession(session);
        }
        return session;
    }
}
